package com.dabai.iot.core.api;

import com.dabai.iot.common.model.DeviceInfo;
import com.dabai.iot.common.model.IotMqttMessage;
import com.dabai.iot.common.model.IotMqttStatus;

/**
 * 消息处理服务
 *
 * @author kev1n
 */
public interface RemoteMessageHandlerService {

    /**
     * 设备行为（上线、离线）处理
     */
    void deviceStatusHandler(DeviceInfo deviceInfo, IotMqttStatus mqttStatus);

    /**
     * 设备消息处理
     */
    void deviceMessageHandler(DeviceInfo deviceInfo, IotMqttMessage mqttMessage);

    /**
     * 服务端发布消息处理（调用 iot 模块只为记录日志）
     */
    void serverMessageHandler(DeviceInfo deviceInfo, IotMqttMessage mqttMessage);

    /**
     * 服务端订阅应答消息处理（调用 iot 模块只为记录日志）
     */
    void serverAckMessageHandler(DeviceInfo deviceInfo, IotMqttMessage mqttMessage);

}
